1. Field of the Invention
The present application relates generally to microprocessors. More specifically, the present application provides a method for avoiding initial power transients.
2. Description of the Related Art
A special “boot” or initialization sequence occurs after applying power to a microprocessor chip in a computer, in order to load the initial program code and start the microprocessors executing that program. In some computer systems, the microprocessor core initializes to a quiesced or stopped state, relying on a service element or another microprocessor to issue a system restart (or start command) in order to start instructions once the program is loaded. A service element is usually a small microcontroller that has the job of initializing and booting up the data processing system. In larger data processing systems, service elements also monitor for errors in the systems or monitor power or temperature, and so forth. Microcontrollers are single purpose processing units designed to execute small control programs, sometimes in real time. The program is frequently stored on the microcontroller in an area of nonvolatile memory. In some instances, the microprocessor is self-initializing, and the microprocessor itself issues the start command.
Additionally, the hardware, upon wake-up from power savings mode, such as sleep, must issue a system restart (or start command) to resume execution. This wake-up procedure can look very much like the clock and instruction start after system initialization.
It is often desirable, when performing test and debug of a microprocessor, to perform a cycle deterministic start. A cycle deterministic start means that, when repeating a test, the hardware executes in exactly the same way every time. Since the service element is asynchronous to the microprocessor, there is no way to guarantee that the traditional instruction start command occurs with the processor in the same exact state every time. Reproducing the same bug scenario every time a test is run is the biggest challenge in debugging problems in a design. Having the ability to deterministically reproduce the failure greatly decreases the time required from failure observation to discovering the fix. This type of debugging is very important in getting systems using the computer chip to market as fast as possible.
Traditionally, to force deterministic operation, the user initializes the microprocessor core by setting a system reset (sreset) interrupt pending, by using a scan, for example, with the functional clocks off. In a scan mode, the service element, which connects to a microprocessor via a JTAG port, is able to set all the latches in all the elements in a processor core to a desired state or setting. JTAG stands for the Joint Test Action Group, which is a standard specifying how to control and monitor the pins of compliant devices on a printed circuit board. Clocks are an integral part of circuits. Clocks allow latches to hold or maintain state. Thus, all the latches connect to clocks.
When all of the clocks on a microprocessor start coincidently, a sequencer sees the sreset interrupt immediately, which causes the instruction fetch unit to fetch the first instruction. During this time, a voltage droop occurs from both an increase in clock power demand and the switching of latch state caused by the instruction execution. The sudden increase in current demand, which the power supplying circuits have not seen yet, causes a voltage droop. Voltage droop is a short-term temporary reduction in the voltage level experienced by electronic devices as they create a load on the power supply. The greater the change in demand for electric current by a device, or by nearby devices, the larger and steeper the drop in voltage experienced. This drop in voltage is undesirable since the performance of electronic devices degrades at lower voltages resulting in loss of performance and potentially incorrect operation.
The unrealistic condition caused by this voltage droop may cause test case fails to occur often when doing chip characterization and testing. Thus, there is a need for an improved method of resetting a system to avoid the initial power transient.